// pages/checkStore/index.js
// 引入request方法
import {
  request
} from "../../api/config.js"
Page({
  /**
   * 页面的初始数据
   */
  data: {
    longitude: 0,
    latitude: 0,
    markers: [],
    activeName: '1',
    showMap: true,
    selectStore: 0,
    // 当前定位经纬度
    currAdd: '',
    // 收藏门店
    collectList:[]
  },
  // 切换tab
  changeTab(e) {
    console.log(e.detail.index);
    if(e.detail.index == 1){
      
      this.get_collect_store()
    }
  },
  // 获取收藏门店
  async get_collect_store(){
    wx.showLoading({
      title: '加载中...',
    })
    let user_id = wx.getStorageSync('user_info') ? JSON.parse(wx.getStorageSync('user_info')).user_id : ''
  await  request('/api/store/collection_store_list','post',{user_id},true).then(({data})=>{
      console.log(data);
      if(data.code == 200){
        data.data.forEach(item => {
          let distance = this.getDistance(item.latitude + ','+ item.longitude)
          console.log(distance);
          item.distance = distance
        })
        this.setData({
          collectList:data.data
        })
      }else{
        wx.showToast({
          title: '获取收藏门店失败',
          icon:'none'
        })
      }
    })
    wx.hideLoading()
  },
  // 选择商家卡片
  selectCard(e) {
    let index = e.currentTarget ? e.currentTarget.dataset.index : e
    console.log(index);
    let select_store = this.data.markers[index]
    // 控制图标
    this.data.markers.forEach((item, idx) => {
      if (index == idx) {
        // item.iconPath = ''
        item.height = 50
        item.width = 50
      } else {
        // item.iconPath = '/image/store_logo.png'
        item.height = 40
        item.width = 40
      }
    })
    // this.data.markers[index].iconPath = '/image/store_logo.png'
    this.setData({
      markers: this.data.markers,
      selectStore: index,
      latitude: select_store.latitude,
      longitude: select_store.longitude
    })
  },
  regionchange(e) {
    let that = this
    // 当地图区域发生变化时，更新中心点坐标和标记点位置  
    var mapCtx = wx.createMapContext("myMap");
    mapCtx.getCenterLocation({
      success: function (res) {
        var latitude = res.latitude;
        var longitude = res.longitude;
        var markers = that.data.markers
        that.setData({
          markers: markers,
          latitude: latitude,
          longitude: longitude
        });
      }
    });
  },
  // 收起地图
  checkMap() {
    if (this.data.showMap) {
      this.setData({
        activeName: '0',
        showMap: false
      })
    } else {
      this.setData({
        activeName: '1',
        showMap: true
      })
    }
  },
  // 选择商家
  selcetStore(e){
    console.log(e.currentTarget.dataset.store);
    let store = e.currentTarget.dataset.store
    console.log(store.store_imgs);
    store.store_imgs = store.store_imgs.split(',')
    wx.setStorageSync('store_info', JSON.stringify(store))
    wx.switchTab({
      url: '/pages/meal/index',
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 从缓存中拿当前定位
    let {latitude,longitude} = wx.getStorageSync('location')
    this.setData({
      currAdd:latitude + ',' + longitude
    })
    this.getStoreList()
  },
  // 获取商家列表
  async getStoreList() {
    wx.showLoading({
      title: '正在加载...',
    })
    let user_id = wx.getStorageSync('user_info') ? JSON.parse(wx.getStorageSync('user_info')).user_id : ''
    await request('/api/store/get_store_list','post',{user_id},false).then(({
      data
    }) => {
      if (data.code == 200) {
        data.data.forEach(item => {
          let distance = this.getDistance(item.latitude + ','+ item.longitude)
          console.log(distance);
          item.distance = distance
        })
        let latitude = data.data[0].latitude
        let longitude = data.data[0].longitude
        this.setData({
          markers: data.data,
          latitude: latitude,
          longitude: longitude
        })
        this.selectCard(0)
      } else {
        wx.showToast({
          title: '获取商家失败',
          icon: 'error'
        })
      }
    })
    wx.hideLoading()
  },
  // 计算距离
  getDistance(address) {
    let [lat1, lng1] = this.data.currAdd.split(',')
    console.log(this.data.currAdd);
    let [lat2, lng2] = address.split(',')
    console.log(address);
    var radLat1 = this.Rad(lat1);
    var radLat2 = this.Rad(lat2);
    var a = radLat1 - radLat2;
    var b = this.Rad(lng1) - this.Rad(lng2);
    var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
    s = s * 6378.137;
    s = Math.round(s * 10000) / 10000;
    s = s.toFixed(2)  //保留两位小数
    //  console.log('经纬度计算的距离:' + s)
    //  this.setData({
    //      Distance:s
    //  })
    return s
  },
  Rad: function(d) { //根据经纬度判断距离
    return d * Math.PI / 180.0;
},
 
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})